/*
 【提高】蜜蜂路线
  题目描述
    一只蜜蜂在下图所示的数字蜂房上爬动, 已知它只能从标号小的蜂房爬到标号大的相邻蜂房。
    其中，蜂房的结构如下所示。

        / \ / \ / \ / \ / \ / \                   / \
       | 1 | 3 | 5 | 7 | 9 | 11|    ...          | n |
        \ / \ / \ / \ / \ / \ / \                 \ / \
         | 2 | 4 | 6 | 8 | 10| 12|   ...           |n+1|
          \ / \ / \ / \ / \ / \ /                   \ /

    现在问你：蜜蜂从蜂房 M 开始爬到蜂房 N，1 <= M < N <= 80，有多少种爬行路线？
  输入
    输入 M，N 的值。（1 <= m < n <= 80）
  输出
    爬行有多少种路线。
  样例输入
    1 14
  样例输出
    377
*/

#include <bits/stdc++.h>

using namespace std;

int main() {
    int m, n;
    cin >> m >> n;

    /*
      首先找到数学规律:
        当 n = m + 1 时, f(n) = 1;
        当 n = m + 2 时, f(n) = 2;
        否则，f(n) = f(n - 1) + f(n - 2);
      针对这种数学规律，通常可以用递推的方法进行代码实现，也可以使用递归的方法进行代码实现！
        本文中使用递推的方法来实现!
        注: 另外一个文件中使用递归的方法实现, 文件路径为:
              joyskid/question_bank/high_precison/q1368_bee_route.cpp
    */
    long long x1 = 1, x2 = 1, num = 1;
    for (int i = m + 2; i <= n; i++) {
        num = x1 + x2;
        x1 = x2;
        x2 = num;
    }
    cout << num;

    return 0;
}